// pages/search/search.js
/**
   *  1 输入框绑定值改变事件input
   *    1获取到输入框的值
   *    2合法判断
   *    3 检验通过 把输入框的值发送到后台
   *    4 返回的数据打印到页面上
   *  2 防抖 （防止抖动） 定时器
   *    1 定义一个全局的定时器id
   */
  import { request } from "../../request/index.js";
Page({

  /**
   * 页面的初始数据
   */
  data: {
    goods:[],
    isFocus:false,
    //输入框的值
    inpValue:""
  },
  TimeId:-1,
 

  //输入框的值改变了就会触发的事件
  handleInput(e){
    // 1 获取输入框的值
    const{value} = e.detail;
    // 2 检验合法性
    if(!value.trim()){
      this.setData({
        goods:[],
        isFocus:false
      })
      //值不合法
      return;
    }
    // 3 准备发送请求获取数据
    this.setData({
      isFocus:true
    })
    clearTimeout(this.TimeId)
    this.TimeId=setTimeout(() =>{
      this.qsearch(value);
    },1000);
    
  },
  //发送请求获取搜索建议 数据
  async qsearch(query){
    const res = await request({url:"/goods/qsearch",data:{query}});
    this.setData({
      goods:res
    })
  },
  handleCancel(e){
    this.setData({
      inpValue:"",
      isFocus:false,
      goods:[]
    })
  }

})